{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "15034355",
   "metadata": {},
   "source": [
    "* 日期：2022-10-19 week09（周三）\n",
    "* 课程：python\n",
    "* 记录人：lishengqing"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de225243",
   "metadata": {},
   "source": [
    "# 本周学习目标  \n",
    "> 1. 列表的方法  \n",
    "> 2. while循环\n",
    "\n",
    "# 1.列表的方法\n",
    ">1. 使用.Tab键查看列表的方法\n",
    ">2. 使用help(查看方法的使用规则)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b8733d72",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan']"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names = [\"Jack\",\"Alex\",\"Marry\",\"Jan\"] \n",
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "29116987",
   "metadata": {},
   "source": [
    "### 1.1 列表的增加"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "7f5db28f",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.append(\"Lihua\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "4ccf31ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7f81720d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function insert:\n",
      "\n",
      "insert(index, object, /) method of builtins.list instance\n",
      "    Insert object before index.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.insert)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "427dca0f",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.insert(2,\"Lihua\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "ebb98bc3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Lihua', 'Lihua', 'Lihua', 'Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "33ecf4be",
   "metadata": {},
   "source": [
    "### 2. 列表的删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "c40ed518",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function remove:\n",
      "\n",
      "remove(value, /) method of builtins.list instance\n",
      "    Remove first occurrence of value.\n",
      "    \n",
      "    Raises ValueError if the value is not present.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.remove)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "aad37d1d",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.remove(\"Lihua\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "5c984301",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Lihua', 'Lihua', 'Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "6e156ee8",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.remove(\"Lihua\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "1b253872",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Lihua', 'Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0a96a25",
   "metadata": {},
   "source": [
    "* 正确的删除方法的流程\n",
    "> 1. 查询value是否存在列表当中\n",
    "> 2.对存在的value进行删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "bc17f74f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"wang\" in names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f9d1531f",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.remove(\"wang\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e09b193d",
   "metadata": {},
   "source": [
    "# 查询"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "903e2c1b",
   "metadata": {},
   "outputs": [],
   "source": [
    "if \"wang\" in names: \n",
    "    names.remove(\"wang\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d59146e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 实践：删除系统：\n",
    "## 1.如果输入的值存在，删除 2.如果输入的结果不存在，提示用户查询无结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "a45986c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Lihua', 'Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "f28dc346",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入要删除的内容：Alex\n",
      "删除成功！\n",
      "['Jack', 'Marry', 'Jan']\n"
     ]
    }
   ],
   "source": [
    "use_input_name = input(\"请输入要删除的内容：\")\n",
    "if use_input_name in names:\n",
    "    names.remove(use_input_name)\n",
    "    print(\"删除成功！\")\n",
    "else:\n",
    "    print(\"您输入的结果不存在，删除无效\")\n",
    "print(names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "dee15a94",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 重新建立names列表数据\n",
    "names = ['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "ab95f421",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "dfa87865",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function remove:\n",
      "\n",
      "remove(value, /) method of builtins.list instance\n",
      "    Remove first occurrence of value.\n",
      "    \n",
      "    Raises ValueError if the value is not present.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.remove)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "04d231f8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function pop:\n",
      "\n",
      "pop(index=-1, /) method of builtins.list instance\n",
      "    Remove and return item at index (default last).\n",
      "    \n",
      "    Raises IndexError if list is empty or index is out of range.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.pop)                     "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8011cfab",
   "metadata": {},
   "source": [
    "index = -1 是默认情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "cdafea51",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Lihua'"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.pop() # 直接使用pop(),删除最后一位"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "9a836877",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan']"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "613ce7c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Marry'"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.pop(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "ebb7ce7f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Jan']"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "55ce74c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "a0b5b4b9",
   "metadata": {},
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "pop index out of range",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "Input \u001b[1;32mIn [45]\u001b[0m, in \u001b[0;36m<cell line: 1>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mnames\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m)\u001b[49m\n",
      "\u001b[1;31mIndexError\u001b[0m: pop index out of range"
     ]
    }
   ],
   "source": [
    "names.pop(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "bf1f6973",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入删除的索引值：1\n"
     ]
    }
   ],
   "source": [
    "pop_index = int(input(\"输入删除的索引值：\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "3a396224",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "删除成功!\n",
      "['Jack']\n"
     ]
    }
   ],
   "source": [
    "if pop_index<len(names):\n",
    "    names.pop(pop_index)\n",
    "    print(\"删除成功!\")\n",
    "else:\n",
    "    print(\"您输入的值不在index的范围内\")\n",
    "print(names)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "90c3cf1f",
   "metadata": {},
   "source": [
    "### 3.列表的修改"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "909ad176",
   "metadata": {},
   "outputs": [],
   "source": [
    "names[0] = \"Zhichao\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "7746608c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Zhichao']"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a00be4ab",
   "metadata": {},
   "source": [
    "### 4. 列表的其他方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "a04d408a",
   "metadata": {},
   "outputs": [],
   "source": [
    "names = ['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "9bc74654",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.clear()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "47b66bd0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "fe2df09c",
   "metadata": {},
   "outputs": [],
   "source": [
    "names_class1 = ['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "096999d2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function list.extend(iterable, /)>"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.extend"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "085c9605",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function extend:\n",
      "\n",
      "extend(iterable, /) method of builtins.list instance\n",
      "    Extend list by appending elements from the iterable.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.extend)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "bab7442c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['张三', '李刚', '刘明']"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names_class2 = [\"张三\",\"李刚\",\"刘明\"]\n",
    "names_class2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "e971f8c5",
   "metadata": {},
   "outputs": [],
   "source": [
    "names_class1.extend(names_class2) #注意：使用列表的方法的列表进行扩展"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "7d671c7d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua', '张三', '李刚', '刘明']"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names_class1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc30ce5e",
   "metadata": {},
   "source": [
    "———\n",
    "* sort()排序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "3509cef4",
   "metadata": {},
   "outputs": [],
   "source": [
    "立定跳远_男生 = [230,250,245,255,260,270]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "c252e84b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function sort:\n",
      "\n",
      "sort(*, key=None, reverse=False) method of builtins.list instance\n",
      "    Sort the list in ascending order and return None.\n",
      "    \n",
      "    The sort is in-place (i.e. the list itself is modified) and stable (i.e. the\n",
      "    order of two equal elements is maintained).\n",
      "    \n",
      "    If a key function is given, apply it once to each list item and sort them,\n",
      "    ascending or descending, according to their function values.\n",
      "    \n",
      "    The reverse flag can be set to sort in descending order.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(立定跳远_男生.sort)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "aaa49bfa",
   "metadata": {},
   "outputs": [],
   "source": [
    "立定跳远_男生.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "21904e71",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[230, 245, 250, 255, 260, 270]"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "立定跳远_男生"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "938f1edf",
   "metadata": {},
   "outputs": [],
   "source": [
    "立定跳远_男生.sort(reverse=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "f61353c0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[270, 260, 255, 250, 245, 230]"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "立定跳远_男生"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3b4e441e",
   "metadata": {},
   "source": [
    "# 2. while循环\n",
    "\n",
    "* while Ture 是循环概念中非常重要的一种方式。它可以实现for循环的指定次数，也可以在特定条件下停止。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "182bb435",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "你是风儿我是沙，缠缠绵绵到天涯... 0\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 1\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 2\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 3\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 4\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 5\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 6\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 7\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 8\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 9\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 10\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 11\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 12\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 13\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 14\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 15\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 16\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 17\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 18\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 19\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 20\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 21\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 22\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 23\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 24\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 25\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 26\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 27\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 28\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 29\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 30\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 31\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 32\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 33\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 34\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 35\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 36\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 37\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 38\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 39\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 40\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 41\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 42\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 43\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 44\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 45\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 46\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 47\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 48\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 49\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 50\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 51\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 52\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 53\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 54\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 55\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 56\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 57\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 58\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 59\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 60\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 61\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 62\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 63\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 64\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 65\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 66\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 67\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 68\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 69\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 70\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 71\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 72\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 73\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 74\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 75\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 76\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 77\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 78\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 79\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 80\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 81\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 82\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 83\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 84\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 85\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 86\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 87\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 88\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 89\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 90\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 91\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 92\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 93\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 94\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 95\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 96\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 97\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 98\n",
      "你是风儿我是沙，缠缠绵绵到天涯... 99\n"
     ]
    }
   ],
   "source": [
    "# 它可以实现for循环的指定次数\n",
    "count = 0\n",
    "while True:\n",
    "    print(\"你是风儿我是沙，缠缠绵绵到天涯...\",count)\n",
    "    count = count+1\n",
    "    if count == 100:\n",
    "        break \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "00bf5e15",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hide_card:········\n",
      "猜一猜(0-100):50\n"
     ]
    },
    {
     "ename": "NameError",
     "evalue": "name 'guess_dight' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "Input \u001b[1;32mIn [101]\u001b[0m, in \u001b[0;36m<cell line: 11>\u001b[1;34m()\u001b[0m\n\u001b[0;32m     12\u001b[0m     \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m你超棒！！\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m     13\u001b[0m     birak\n\u001b[1;32m---> 14\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[43mguess_dight\u001b[49m\u001b[38;5;241m>\u001b[39mhide_card:\n\u001b[0;32m     15\u001b[0m     \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m往小猜！加油！\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m     16\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n",
      "\u001b[1;31mNameError\u001b[0m: name 'guess_dight' is not defined"
     ]
    }
   ],
   "source": [
    "## 小游戏：猜数字，5次\n",
    "#1. hide_card : 0-100,大了，小了\n",
    "#2. guess_digit : 50\n",
    "import getpass\n",
    "count = 0\n",
    "hide_card = int(getpass.getpass(\"hide_card:\"))\n",
    "\n",
    "guess_digit = int(input(\"猜一猜(0-100):\"))\n",
    "\n",
    "# 对比:\n",
    "if hide_card == guess_digit:\n",
    "    print(\"你超棒！！\")\n",
    "    birak\n",
    "elif guess_dight>hide_card:\n",
    "    print(\"往小猜！加油！\")\n",
    "else:\n",
    "    print(\"往大的猜！\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5914f4c8",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "99ece6f7",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "54859aa9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "9c4d2af6",
   "metadata": {},
   "source": [
    "# 课后练习：\n",
    ">1. 列表的切片与方法\n",
    ">> 1. 课本P67 练习\n",
    ">>2. 课本P81 练习\n",
    ">2. P89: 列表，我们已经知道什么"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7ea8d5e2",
   "metadata": {},
   "source": [
    "# 课本P67 练习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "d9c2d3da",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Don't panic!\n",
      "['D', 'o', 'n', \"'\", 't', ' ', 'p', 'a', 'n', 'i', 'c', '!']\n"
     ]
    }
   ],
   "source": [
    "phrase = \"Don't panic!\"\n",
    "plist = list(phrase)\n",
    "print(phrase)\n",
    "print(plist)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "a2eb7b6d",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Don't panic!\n",
      "['D', 'o', 'n', \"'\", 't', ' ', 'p', 'a', 'n', 'i', 'c', '!']\n"
     ]
    },
    {
     "ename": "AttributeError",
     "evalue": "'list' object has no attribute 'removee'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "Input \u001b[1;32mIn [22]\u001b[0m, in \u001b[0;36m<cell line: 5>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      6\u001b[0m plist\u001b[38;5;241m.\u001b[39mpop()\n\u001b[0;32m      7\u001b[0m plist\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m----> 8\u001b[0m \u001b[43mplist\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mremovee\u001b[49m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m      9\u001b[0m plist\u001b[38;5;241m.\u001b[39mextend([plist\u001b[38;5;241m.\u001b[39mpop(),plist\u001b[38;5;241m.\u001b[39mpop()])\n\u001b[0;32m     10\u001b[0m plist\u001b[38;5;241m.\u001b[39minsert(\u001b[38;5;241m2\u001b[39m,plist\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;241m3\u001b[39m))\n",
      "\u001b[1;31mAttributeError\u001b[0m: 'list' object has no attribute 'removee'"
     ]
    }
   ],
   "source": [
    "phrase = \"Don't panic!\"\n",
    "plist = list(phrase)\n",
    "print(phrase)\n",
    "print(plist)\n",
    "for i in range(4):\n",
    "    plist.pop()\n",
    "    plist.pop(0)\n",
    "    plist.removee(\"'\")\n",
    "    plist.extend([plist.pop(),plist.pop()])\n",
    "    plist.insert(2,plist.pop(3))\n",
    "new_phrase = ''.join(plist)\n",
    "print(plist)\n",
    "print(new_phrase)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8474a723",
   "metadata": {},
   "source": [
    "# 课本P81 练习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "081306f2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
